home *** CD-ROM | disk | FTP | other *** search
- 1000 ' SAVE "INC_WP_X.BAS",A:SAVE "INC_WP_X.BAK",A
- 1010 ' 手書きワープロ(ドット自由version)
- 1020 ' 1995.8.12(Sat)
- 1030 ' (C) by Kota2 of BigCabin
- 1040 ' === Main routine ===
- 1050 GOSUB *ALL_INITIALIZE
- 1060 WHILE MAIN_LOOP=0
- 1070 GOSUB *RESTART
- 1080 GOSUB *MOJI
- 1090 GOSUB *LOOP_CHECK
- 1100 IF MAIN_LOOP=0 THEN GOSUB *LITTLE
- 1110 WEND
- 1120 GOSUB *END
- 1130 END
- 1140 ' --- 全初期化 ---
- 1150 *ALL_INITIALIZE
- 1160 X_MAX=640
- 1170 Y_MAX=480
- 1175 CLS
- 1180 INPUT "変換後を何ドットにしますか";DOT
- 1190 SCREEN@ 0
- 1200 CLS
- 1210 FOR I=DOT+4 TO Y_MAX/2-1 STEP DOT+4
- 1220 LINE (10,I)-(X_MAX-10,I),PSET
- 1230 NEXT I
- 1240 MOUSE 0
- 1250 MOUSE 1,,,1
- 1260 MOUSE 4,0,Y_MAX/2,X_MAX-1,Y_MAX-1
- 1270 RETURN
- 1280 ' --- 2次初期化 ---
- 1290 *RESTART
- 1300 UP = 999
- 1310 DOWN =-999
- 1320 LEFT = 999
- 1330 RIGHT=-999
- 1340 LINE (0,Y_MAX/2)-(X_MAX,Y_MAX),PSET,0,BF
- 1350 RETURN
- 1360 ' --- 文字書き ---
- 1370 *MOJI
- 1380 MOJI=0
- 1390 WHILE MOJI=0
- 1400 MOUSE_X=MOUSE(0)
- 1410 MOUSE_Y=MOUSE(1)
- 1420 ' PRINT MOUSE_X,MOUSE_Y
- 1430 IF MOUSE(2,0) THEN GOSUB *LIMIT: LINE(MOUSE_X,MOUSE_Y)-(MOUSE_XX,MOUSE_YY),PSET
- 1440 IF MOUSE(2,1) THEN MOJI=-1
- 1450 MOUSE_XX=MOUSE_X
- 1460 MOUSE_YY=MOUSE_Y
- 1470 WEND
- 1480 RETURN
- 1490 ' --- 縮小 ---
- 1500 *LITTLE
- 1510 ' PRINT UP,DOWN,LEFT,RIGHT
- 1520 ' LINE (LEFT-1,UP-1)-(RIGHT+1,DOWN+1),PSET,,B
- 1530 HI=(RIGHT-LEFT)/(DOWN-UP):' 縦に対する横の比
- 1540 RITU=(DOWN-UP)/DOT :' 16ドットに対する倍率
- 1550 IF X_MAX-LINE_X-10<DOT*HI THEN LINE_X=0:LINE_Y=LINE_Y+DOT+4
- 1560 FOR Y=0 TO DOT
- 1570 FOR X=0 TO DOT*HI
- 1580 ' PSET(X,Y),3
- 1590 ' PSET(X*RITU+LEFT,Y*RITU+UP),5
- 1600 GOSUB *TEN
- 1610 IF TEN<>0 THEN PSET(X+10+LINE_X,Y+2+LINE_Y)
- 1620 NEXT X
- 1630 NEXT Y
- 1640 LINE_X=LINE_X+DOT*HI+2
- 1650 RETURN
- 1660 ' --- 終了 ---
- 1670 *END
- 1680 MOUSE 5
- 1690 END
- 1700 ' --- 範囲更新 ---
- 1710 *LIMIT
- 1720 IF UP >MOUSE_Y THEN UP =MOUSE_Y
- 1730 IF DOWN <MOUSE_Y THEN DOWN =MOUSE_Y
- 1740 IF LEFT >MOUSE_X THEN LEFT =MOUSE_X
- 1750 IF RIGHT<MOUSE_X THEN RIGHT=MOUSE_X
- 1760 RETURN
- 1770 ' --- 点を打つかどうかの処理 ---
- 1780 *TEN
- 1790 TEN=0
- 1800 TEN_X=X*RITU+LEFT
- 1810 TEN_Y=Y*RITU+UP
- 1820 FOR TY=TEN_Y-RITU/2 TO TEN_Y+RITU/2
- 1830 FOR TX=TEN_X-RITU/2 TO TEN_X+RITU/2
- 1840 IF POINT(TX,TY)=-1 THEN TEN=TEN+1
- 1850 NEXT TX
- 1860 NEXT TY
- 1870 RETURN
- 1880 ' --- メインループ終了の判定 ---
- 1890 *LOOP_CHECK
- 1900 IF UP=999 AND DOWN=-999 AND LEFT=999 AND RIGHT =-999 THEN MAIN_LOOP=-1
- 1910 RETURN
-